function showUploadConfirmation() {
    alert("Upload terminado!");
}

function onlyNum() {
    if (event.keyCode < 44 || event.keyCode > 57) {
        event.returnValue = false;
        return false;
    }
} //fim da funcao
function strictNum() {
    if (event.keyCode < 48 || event.keyCode > 57) {
        event.returnValue = false;
        return false;
    }
}
function onlyHexa() {
    if ((event.keyCode < 48 || event.keyCode > 57) &&
        (event.keyCode < 65 || event.keyCode > 70) &&
        (event.keyCode < 97 || event.keyCode > 102)) {
        event.returnValue = false;
        return false;
    }
} //fim da funcao

function validaTamanho(valor, tamanho) {
    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    
    if (valor.length>0 && valor.length < tamanho) {
        alert("Este campo exige " + tamanho + " digitos");
        target.focus();
    }
}
function validaData() {

    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    if (target.value == null || target.value == "") return true;

    var testdate = target.value.replace(/\D+/g, '');
    if (testdate == null || testdate == "") return true;

    var date = target.value;
    var ardt = new Array;
    var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
    ardt = date.split("/");
    erro = false;
    if (date.search(ExpReg) == -1) {
        erro = true;
    }
    else if (((ardt[1] == 4) || (ardt[1] == 6) || (ardt[1] == 9) || (ardt[1] == 11)) && (ardt[0] > 30))
        erro = true;
    else if (ardt[1] == 2) {
        if ((ardt[0] > 28) && ((ardt[2] % 4) != 0))
            erro = true;
        if ((ardt[0] > 29) && ((ardt[2] % 4) == 0))
            erro = true;
    }
    if (erro) {
        alert("\"" + target.value + "\" não é uma data válida!!!");
        target.focus();
        return false;
    }
    return true;
}

function validaDecimal(valor, inteiros, decimais) {
   var reDecimalPt = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
   var reDecimalEn = /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/;
   var reDecimal = reDecimalPt;

   var pLang = "Pt";
   charDec = (pLang != "En" ? "," : ".");
   eval("reDecimal = reDecimal" + pLang);

   var e = window.event;
   var target;
   if (e.target) target = e.target;
   else if (e.srcElement) target = e.srcElement;

   if (reDecimal.test(valor)) {
       valor = valor.replace(/\./g, '');window.alert(valor)
       pos = valor.indexOf(charDec);
       decs = pos == -1 ? 0 : valor.length - pos - 1;
       ints = pos == -1 ? valor.length : pos;
       if (ints > inteiros) {
           alert("Por favor, informe apenas " + inteiros + " casa(s) antes da virgula.");
           target.focus();
           return false;
       }
       if (decs > 0 && decs > decimais) {
           alert("Por favor, informe apenas " + decimais + " casa(s) decimais.");
           target.focus();
           return false;
       }
   } else if (valor != null && valor != "") {
       alert("por favor, informe um número válido.");
       target.focus();
       return false;
   }

   return true;
}
function validaCPF() {
    var numeros, digitos, soma, i, resultado, digitos_iguais;

    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    if (target.value == null || target.value == "") return true;
    var cpf = target.value.replace(/\D+/g, '');
    if (cpf == null || cpf == "") return true;
    
    digitos_iguais = 1;
    if (cpf.length < 11){
        alert('CPF inválido');
        target.focus();
        return false;
    }
    for (i = 0; i < cpf.length - 1; i++)
        if (cpf.charAt(i) != cpf.charAt(i + 1)) {
           digitos_iguais = 0;
           break;
        }
    if (!digitos_iguais) {
        numeros = cpf.substring(0,9);
        digitos = cpf.substring(9);
        soma = 0;
        for (i = 10; i > 1; i--)
            soma += numeros.charAt(10 - i) * i;
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(0)) {
            alert('CPF inválido');
            target.focus();
            return false;
        }
        numeros = cpf.substring(0,10);
        soma = 0;
        for (i = 11; i > 1; i--)
          soma += numeros.charAt(11 - i) * i;
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(1)){
            alert('CPF inválido');
            target.focus();
            return false;
        }
        return true;
    }
    else {
        alert('CPF inválido');
        target.focus();
        return false;
    }
}
function validaCNPJ() {

    var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;

    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    if (target.value == null || target.value == "") return true;
    
    var cnpj = target.value.replace(/\D+/g, '')
    if (cnpj == null || cnpj == "") return true;

    digitos_iguais = 1;
    if (cnpj.length != 14) {
        alert('CNPJ inválido');
        target.focus();
        return false;
    }

    for (i = 0; i < cnpj.length - 1; i++)
        if (cnpj.charAt(i) != cnpj.charAt(i + 1)) {
            digitos_iguais = 0;
            break;
        }
    if (!digitos_iguais) {
        tamanho = cnpj.length - 2
        numeros = cnpj.substring(0,tamanho);
        digitos = cnpj.substring(tamanho);
        soma = 0;
        pos = tamanho - 7;
        for (i = tamanho; i >= 1; i--) {
            soma += numeros.charAt(tamanho - i) * pos--;
            if (pos < 2)
               pos = 9;
        }
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(0)) {
            alert('CNPJ inválido');
            target.focus();
            return false;
        }

        tamanho = tamanho + 1;
        numeros = cnpj.substring(0,tamanho);
        soma = 0;
        pos = tamanho - 7;
        for (i = tamanho; i >= 1; i--) {
            soma += numeros.charAt(tamanho - i) * pos--;
            if (pos < 2)
                pos = 9;
        }
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(1)){
            alert('CNPJ inválido');
            target.focus();
            return false;
        }
        else {
            // alert('CNPJ  OK !');
            return true;
        }
    }
    else {
        alert('CNPJ inválido');
        target.focus();
        return false;
    }
}

function validaEMail() {
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);

    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    if (target.value == null || target.value == "") return true;

    var email = target.value;

    if (er.test(email)) {
      return true;
    }
    else{
        alert('Email inválido');
        target.focus();
        return false;
    }
}

function validaCep(){
    //exp = /\d{2}\.\d{3}\-\d{3}/
    exp = /\d{5}\-\d{3}/
    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    if (target.value == null || target.value == "") return true;

    var cep = target.value;

    if (exp.test(cep)) {
      return true;
    }
    else{
        alert('CEP inválido');
        target.focus();
        return false;
    }
}

function validaTelefone(){
    //exp = /\(\d{2}\)\ \d{4}\-\d{4}/
    exp = /\(\d{2}\)\ \d{8}\d?/
    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    if (target.value == null || target.value == "") return true;

    var tel = target.value;

    if (exp.test(tel)) {
      return true;
    }
    else{
        alert('Telefone Inválido!');
        target.focus();
        return false;
    }
}
//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) {
   var boleanoMascara;
   var Digitato = evento.keyCode;
   exp = /\-|\.|\/|\(|\)| /g        
   campoSoNumeros = campo.value.toString().replace( exp, "" );
   var posicaoCampo = 0;
   var NovoValorCampo="";
   var TamanhoMascara = campoSoNumeros.length;

   if (Digitato != 8) {
      // backspace
      for(i=0;i<= TamanhoMascara;i++)
      {
         boleanoMascara  = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == "/"))
         boleanoMascara  = boleanoMascara || ((Mascara.charAt(i) == "(") || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))
         if (boleanoMascara) {
            NovoValorCampo += Mascara.charAt(i);
            TamanhoMascara++;
         }
         else {
            NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
            posicaoCampo++;
         }
      }
      campo.value = NovoValorCampo;
      return true;
   }
   else {
      return true;
   }

}
// *********************************
//adiciona mascara de cnpj
function mascaraCNPJ() {
    if (strictNum() == false) {
        event.returnValue = false;
        return false;
    }
    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    //if (target.value == null || target.value == "") return true;

    return formataCampo(target, '00.000.000/0000-00', window.event);
}
//adiciona mascara de cep
function mascaraCep() {
    if (strictNum() == false) {
        event.returnValue = false;
        return false;
    }
    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    //if (target.value == null || target.value == "") return true;

    return formataCampo(target, '00000-000', window.event);
}
//adiciona mascara de data
function mascaraData() {
    if (strictNum() == false) {
        event.returnValue = false;
        return false;
    }
    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    //if (target.value == null || target.value == "") return true;

    return formataCampo(target, '00/00/0000', window.event);
}
//adiciona mascara ao telefone
function mascaraTelefone() {
    if (strictNum() == false) {
        event.returnValue = false;
        return false;
    }
    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    //if (target.value == null || target.value == "") return true;

    return formataCampo(target, '(00) 000000000', window.event);
}
//adiciona mascara ao CPF
function mascaraCPF() {
    if (strictNum() == false) {
        event.returnValue = false;
        return false;
    }
    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    //if (target.value == null || target.value == "") return true;

    return formataCampo(target, '000.000.000-00', window.event);
}

function mascaraMoeda() {
    if (strictNum() == false) {
        event.returnValue = false;
        return false;
    }
    var e = window.event;
    var target;
    if (e.target) target = e.target;
    else if (e.srcElement) target = e.srcElement;
    //if (target.value == null || target.value == "") return true;

    var SeparadorMilesimo = '.';
    var SeparadorDecimal = ',';
    
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = event.keyCode;  //(window.Event) ? e.which : e.keyCode;
    if (whichCode == 27 || whichCode == 13 || whichCode == 9 || whichCode == 8) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    len = target.value.length;

    for (i = 0; i < len; i++)
        if ((target.value.charAt(i) != '0') && (target.value.charAt(i) != SeparadorDecimal)) break;
    aux = '';
    for (; i < len; i++)
        if (strCheck.indexOf(target.value.charAt(i)) != -1) aux += target.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) target.value = '';
    if (len == 1) target.value = '0' + SeparadorDecimal + '0' + aux;
    if (len == 2) target.value = '0' + SeparadorDecimal + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        target.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
            target.value += aux2.charAt(i);
        target.value += SeparadorDecimal + aux.substr(len - 2, len);
    }

    event.returnValue = false;
    return false;
}
